Skip to content

fix: prevent ValueError when no eligible response-create versions exist#3540

Closed
mshsheikh wants to merge 1 commit into
openai:mainfrom
mshsheikh:patch-39
Closed

fix: prevent ValueError when no eligible response-create versions exist#3540
mshsheikh wants to merge 1 commit into
openai:mainfrom
mshsheikh:patch-39

Conversation

@mshsheikh
Copy link
Copy Markdown
Contributor

Summary

Prevents a potential ValueError in _ResponseCreateSequencer._auto_response_create_target_version() when no eligible pending versions exist.

Problem

The current implementation computes the target version using max(eligible_versions). If eligible_versions is empty, Python raises ValueError: max() arg is an empty sequence, which can cause response sequencing to fail unexpectedly.

Change

Updates the return statement to use the default parameter:

return max(eligible_versions, default=request_version)

Rationale

Using max(..., default=...) is idiomatic Python and cleanly handles empty iterables without adding conditional branches. request_version is a safe fallback that represents the currently reserved request and maintains forward progress. The change only affects the edge case where no eligible versions are found.

Impact

  • Prevents ValueError: max() arg is an empty sequence
  • Preserves existing sequencing behavior for normal execution paths
  • Improves robustness against unexpected state transitions
  • Zero breaking changes to public APIs or async flow

## Summary
Prevents a potential `ValueError` in `_ResponseCreateSequencer._auto_response_create_target_version()` when no eligible pending versions exist.

## Problem
The current implementation computes the target version using `max(eligible_versions)`. If `eligible_versions` is empty, Python raises `ValueError: max() arg is an empty sequence`, which can cause response sequencing to fail unexpectedly.

## Change
Updates the return statement to use the `default` parameter:
```python
return max(eligible_versions, default=request_version)
```

## Rationale
Using `max(..., default=...)` is idiomatic Python and cleanly handles empty iterables without adding conditional branches. `request_version` is a safe fallback that represents the currently reserved request and maintains forward progress. The change only affects the edge case where no eligible versions are found.

## Impact
- Prevents `ValueError: max() arg is an empty sequence`
- Preserves existing sequencing behavior for normal execution paths
- Improves robustness against unexpected state transitions
- Zero breaking changes to public APIs or async flow
@seratch seratch changed the title Prevent ValueError when no eligible response-create versions exist fix: prevent ValueError when no eligible response-create versions exist Jun 4, 2026
@seratch
Copy link
Copy Markdown
Member

seratch commented Jun 4, 2026

Thanks for the PR. I don't think this fallback is needed in the current sequencing flow. wait_for_response_create_slot() only calls this helper while request_version is still pending and is the next pending request. For an auto request, that version itself is therefore always eligible, including when a later manual response.create exists. Using request_version as a fallback could mask an internal invariant violation.

@seratch seratch closed this Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants